草庐IT

MySQL group-by 非常慢

全部标签

mysql - MySQL 和 MariaDB 中使用 GROUP BY 和 ORDER BY 的不同结果集

我有一个表:voj_submission具有以下结构:CREATETABLEIFNOTEXISTS`voj_submissions`(`submission_id`bigint(20)NOTNULL,`problem_id`bigint(20)NOTNULL,`uid`bigint(20)NOTNULL,`submission_judge_result`varchar(8)DEFAULTNULL,)ENGINE=InnoDBAUTO_INCREMENT=1004DEFAULTCHARSET=utf8;而表中的数据可能是这样的:SubmissionIDProblemIDUserIDJud

php - GROUP BY 计算不正确

我有这个声明:SELECTCOUNT(ID)ASnumberVote,AWARD_ID,NOMINEE_ID,VOTER_ID,MULTI_CODEFROMb_awards_voteWHEREAWARD_ID=8GROUPBYMULTI_CODE我的表格是这样的:ID|AWARD_ID|NOMINEE_ID|VOTER_ID|MUTLI_CODE1|8|3|1|48372|8|4|1|48373|8|5|1|4837但是在php中返回:$numberVote=$row['numberVote'];此语句返回3。这里是我想要的更多细节:所有具有相同MULTI_CODE的条目实际上都是1票

mysql - SQL Group By 和两列计数

我有一个MySQL表,其中的数据为:-country|city---------------italy|milanitaly|romeitaly|romeireland|corkuk|londonireland|cork我想查询这个并按国家和城市分组,并且有城市和国家的计数,如下所示:-country|city|city_count|country_count---------------------------------------------ireland|cork|2|2italy|milan|1|3italy|rome|2|3uk|london|1|1我能做到:-SELECT

MySQL 5.6 长 WHERE IN 查询非常慢

自MySQL5.6版本以来,一个非常简单但很长的查询比5.4版本需要更长的订单数。架构:三个表,一个包含元素,一个包含类别,还有一个M:N表。创建语句:CREATETABLEelement(idint(11)NOTNULLAUTO_INCREMENT,namevarchar(255)CHARACTERSETutf8COLLATEutf8_binNOTNULL,PRIMARYKEY(id))ENGINE=InnoDBAUTO_INCREMENT=4257455DEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;CREATETABLEcategory(id

mySQL:CASE、GROUP 和 ORDER By

我有一个简单的表,其中存储了一堆股票的市值。我正在尝试查看是否可以创建一个将返回如下内容的查询:cap_typetype_countmicro4small6large1mega2我不确定如何调整此查询以计算不同选择案例组中cap_types的数量。这是我到目前为止所拥有的:SELECTCASEWHENmarket_cap=10=50=10=50这是一些示例数据:CREATETABLE`stocks`(`id`int(11)unsignedNOTNULLAUTO_INCREMENT,`stock`varchar(4)COLLATEutf8_unicode_ciDEFAULTNULL,`m

mysql - 为什么这个 MySQL 语句中的 GROUP BY 子句不抛出错误?

我在here中使用w3s作为示例SELECTShippers.ShipperName,COUNT(Orders.OrderID)ASNumberOfOrders,Orders.OrderDateFROMOrdersLEFTJOINShippersONOrders.ShipperID=Shippers.ShipperIDGROUPBYShipperName;我很困惑为什么上面的语句没有抛出错误。当我们按所有OrderID进行聚合时,MySQL如何知道要使用哪个OrderDate? 最佳答案 HowdoesmysqlknowwhichO

MySQL 日期范围多列计数和 Group By Select 语句

我有一个查询我已经研究了一段时间,但我似乎无法把它记下来。此处的其他答案适用于计算特定日期范围内的金额,然后按日期分组以获得计数。但是,我需要计算两列并按日期分组。例如,这是我试图开始工作的查询:(SELECTCOUNT(*)arrived,DATE(arrived)date,'arrived'ASsourceFROMproductsWHEREarrivedBETWEEN'2016-01-01'AND'2016-01-31'GROUPBYDATE(date)ORDERBYdateASC)UNIONALL(SELECTCOUNT(*)released,DATE(released)date

mysql - 带有索引列的 MySQL 查询非常缓慢

我有一个总共有400万行的表。当我运行以下查询时,需要40秒才能完成SELECT*FROM`traffic`WHERE`callstart_timestamp`>='2016-09-0100:00:00'AND`callend_timestamp`416040total,Querytook40.0631seconds.如果我从查询中删除条件ANDapp='XXXX',它将在不到一秒内完成。由于所有列都已编入索引,您能否告知可能导致问题的原因?查询说明:SIMPLE;traffic;NULL;ref;app,callend_timestamp,callstart_timestamp;ap

mysql - SQL:如何过滤 GROUP BY 之外的结果

原始问题Thefollowingrelationskeeptrackofairlineflightinformation:Aircraft(aircraft_number,aircraft_make,cruisingrange)Certified(pilot_id,aircraft_number)Pilot(pilot_id,pilot_name,salary)Notethatitalicattributesdenoteprimarykeys.Inthisschemeeverypilotiscertifiedforsomeaircraft.Writeeachofthefollowing

mysql - 为什么使用 GROUP BY 的 SQL 查询会产生更多的行?

我有下表:+------+-------+--------------------------------------+|id|rev|content|+------+-------+--------------------------------------+|1|1|...||2|1|...||1|2|...||1|3|...|+------+-------+--------------------------------------+当我运行以下查询时:SELECTid,MAX(rev)maxrev,contentFROMYourTableGROUPBYid;我得到:+-----